import { errorConfig } from '@/requestErrorConfig';
import { SettingsData } from '@/types';
import { ConfigProvider, theme } from 'antd';
import 'antd/dist/reset.css';
import zhCN from 'antd/locale/zh_CN';
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import { DndProvider } from 'react-dnd';
import { TouchBackend } from 'react-dnd-touch-backend';
import './global.less';
dayjs.locale('zh-cn');
// 运行时配置

// 全局初始化数据配置，用于 Layout 用户信息和权限初始化
// 更多信息见文档：https://next.umijs.org/docs/api/runtime-config#getinitialstate

export async function getInitialState(): Promise<SettingsData> {
  return (await window.tm?.ipcRenderer.invoke(
    'getTeachConfig',
  )) as SettingsData;
}

export function rootContainer(container: React.ReactElement) {
  return (
    <ConfigProvider
      locale={zhCN}
      theme={{
        algorithm: [theme.darkAlgorithm],
      }}
    >
      <DndProvider backend={TouchBackend}>{container}</DndProvider>
    </ConfigProvider>
  );
}

// export const layout = () => {
//   return {
//     logo: '/favicon.ico',
//     navTheme: 'realDark',
//     fixSiderbar: true,
//     layout: 'top',
//     splitMenus: false,
//     // contentWidth: 'Fluid',
//     rightRender: () => undefined,
//   };
// };

/**
 * @name request 配置，可以配置错误处理
 * 它基于 axios 和 ahooks 的 useRequest 提供了一套统一的网络请求和错误处理方案。
 * @doc https://umijs.org/docs/max/request#配置
 */
export const request = {
  ...errorConfig,
};
